package saei.bean;

import javax.persistence.*;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.ForeignKey;
import org.hibernate.annotations.Index;

import saei.bean.vo.RepresentacionVO;

@SuppressWarnings("serial")
@Entity
@Table(name="Representacion")
public class Representacion  extends EntidadPersistente
{
    @Column(name="cod_representacion", unique=true)
    @Index(name="uk_representacion")
    private String codigo;
    @Column(name="nombre")
    private String nombre;
    @ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
	@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
    @ForeignKey(name="fk_representacion_cpa")
    @JoinColumn(name="id_codigoPostal")
    private CodigoPostal codigoPostal;
    @Column(name="altura")
    private int altura;
    @Column(name="telefono")
    private String telefono;

    public Representacion () {}

    public Representacion (String codigo){
        this.codigo = codigo;
    }
    
    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public CodigoPostal getCodigoPostal() {
        return codigoPostal;
    }

    public void setCodigoPostal(CodigoPostal codigoPostal) {
        this.codigoPostal = codigoPostal;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public int getAltura() {
        return altura;
    }

    public void setAltura(int altura) 
    {
        this.altura = altura;
    }
	
	public RepresentacionVO getVO() {
		RepresentacionVO retVal = new RepresentacionVO();
		retVal.setCodigo(codigo);
		retVal.setDireccion(codigoPostal.getDireccionNormalizada(altura));
		retVal.setNombre(nombre);
		
		return retVal;
	}

	public String getTelefono() {
		return telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}
}
